Data networks have typically been connection less networks that transfer data traffic in bursts of packets, where the packets within the bursts are not necessarily transported in sequential order. Voice and video networks have typically been connection-based networks that stream data from a source to a destination in precise sequential order. The growth in popularity of the Internet has created a demand for networks that can efficiently deliver data, voice, and video with a quality of service that satisfies speed and reliability requirements.
In the data networking arena, the Transmission Control Protocol and the Internet Protocol (TCP/IP) suite is becoming the most widely accepted and utilized network protocol. TCP/IP allows for the transmission of variable-length packets and it is commonly utilized in conjunction with the ethernet protocol. The ethernet protocol functions at layer 2 (the data link layer) of the OSI model, while IP functions at layer 3 (the network layer) and TCP functions at layer 4 (the transport layer). FIG. 1 is a depiction of an ethernet packet 10 with a variable-length payload 12 that includes header information relevant to the ethernet 14 (layer 2), the IP 16 (layer 3), and the TCP 18 (layer 4) protocols.
Although TCP/IP has become an increasingly popular protocol suite, TCP/IP is connection less and TCP/IP allows for the transfer of variable-size data packets. This makes TCP/IP more difficult to use for transmitting quality voice and video data streams from a source to a destination than connection-based protocols such as ATM which use fixed cell sizes. In order to improve the ability of TCP/IP-based networks to effectively transmit voice, video, and other transmission-critical packet flows, and in order to police bandwidth consumption, network devices need to have the ability to control network traffic based on various critical flow parameters. Specifically, network devices need to be able to control network traffic on a flow-by-flow basis, where a "flow" is defined as a sequence of data packets transmitted from a first host to a second host for the purpose of running one specific application. Improvements in traffic control can be achieved by managing packet flows based on OSI layer 4 information.
Layer 4 (the transport layer) of the OSI model is responsible for end-to-end communications between devices, such as coordinating the communications between network sources and destinations. The transport layer is where the TCP and the User Datagram Protocol (UDP) information reside in an IP protocol stack. At the transport layer, the TCP and UDP headers include port numbers that uniquely identify which application protocol (e.g., FTP, Telnet, SMTP, HTTP, NNTP, SNMP, etc.) is relevant to a given packet. Receiving-end computer systems use the application protocol information to interpret data contained in packets. Specifically, the port numbers in TCP/UDP headers enable a receiving-end computer system to determine the type of IP packet it has received and to hand the packet off to the appropriate higher layer software.
Prior art devices control network traffic based on application information by sending the TCP/IP header information from each packet to a central processing unit that applies software-based look-up tables to determine the application protocol that is present and to determine which, if any, application-specific traffic controls apply to the packets. FIG. 2 is a depiction of a network device 20 that includes a data path multiplexer 42, a scheduler 44, and ten data links 24 connected to two input/output (I/O) controllers 28 and 32. When packets are received at the I/O controllers, some or all of the packet data is sent to the central processor 36, which must extract the TCP/IP header information. The central processor then accesses layer 3 and/or layer 4 databases 40 to obtain, among other things, application protocol information. Based on the layer 3 and layer 4 information, flow controls can be applied to a flow of packets on a packet-by-packet basis. The main disadvantage of the architecture as depicted in FIG. 2 is that the look-up and traffic control processes are slow relative to the available band-width of the data links, such as twisted pair wires and optical fibers, that are attached to the network device, because the processes are performed by a multi-purpose processor and application-specific software. As a result, bottlenecks that degrade overall network performance may be created during the time required to complete software-based look-ups. Bottlenecks can cause unacceptable delays in mission-critical applications such as order entry or time-sensitive applications such as video teleconferencing.
Another approach to network traffic control is disclosed in U.S. Pat. No. 5,381,407, entitled "Method and System for Controlling User Traffic to a Fast Packet Switching System," issued to Chao. Chao is an asynchronous transfer mode (ATM) specific method and system that applies a well known leaky bucket algorithm to control the flow of 53-byte fixed-length packets in a computer network. The leaky bucket algorithm involves a "bucket" that is large enough to store bursts of multiple packets incoming to the bucket. Regardless of the rate of packets incoming to the bucket, packets are released from the bucket at a controlled rate that is dictated by the availability of credits. Whenever a credit is available, a corresponding number of packets are released. The flow of packets is controlled by controlling the supply of credits. A disadvantage of the Chao method and apparatus is that it is specific to ATM-based networks that transfer only fixed-length cells. Accordingly, the supply of credits is based solely on information from a virtual channel identifier (VCI) that is specific to the ATM protocol and associated with each packet. The VCI is not compatible with variable-length protocols such as ethernet. Because Chao relies on the VCI to control user traffic, the Chao approach is not applicable to TCP/IP networks that utilize a layer 2 (datalink layer) protocol such as ethernet.
In light of the performance problems of prior art devices that access application protocol information in a central processor and the incompatibility of ATM-based traffic control systems, what is needed is an improved method and apparatus that control network traffic to a specified quality of service by utilizing application protocol information as supplied by the transmission control protocol.